data bikemodels; length Model $12 Class $8 Frame $15; input Model $ Class $ Price Frame $; cards; BlackBora Track 796 Aluminum DeltaBreeze Road 399 CroMoly JetStream Track 1130 CroMoly Mistral Road 1995 CarbonComp Nor'easter Mountain 899 Aluminum SantaAna Mountain 459 Aluminum Scirocco Mountain 2256 Titanium TradeWind Road 759 Aluminum ; run; proc print data=bikemodels; run; * w/o macro; proc sort data=bikemodels; by descending Price; run; proc print data=bikemodels noobs; title 'Current bikemodels'; title2 "Sorted by Descending Price"; format Price dollar6.; run; proc sort data=bikemodels; by Class; run; proc print data=bikemodels noobs; title 'Current bikemodels'; title2 "Sorted by Class"; format Price dollar6.; run; * with macro; %macro sortandprint(sortseq=, sortvar=); proc sort data=bikemodels; by &sortseq &sortvar; run; proc print data=bikemodels noobs; title 'Current bikemodels'; title2 "Sorted by &sortseq &sortvar"; format Price dollar6.; run; %mend sortandprint; %sortandprint(sortseq=Descending, sortvar=Price) %sortandprint(sortseq=, sortvar=Class)